Symbolic Execution And Model Checking For Testing